import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

import '../theme/app_theme.dart';

class ThemeProvider extends ChangeNotifier {
  // 默认使用浅色主题
  ThemeMode _themeMode = ThemeMode.light;
  // 默认使用蓝色主题（索引0）
  int _colorSeed = 0;
  
  ThemeProvider() {
    _loadSettings();
  }
  
  ThemeMode get themeMode => _themeMode;
  int get colorSeed => _colorSeed;
  
  // 获取亮色主题
  ThemeData get lightTheme => AppTheme.lightTheme(colorSeedIndex: _colorSeed);
  
  // 获取暗色主题
  ThemeData get darkTheme => AppTheme.darkTheme(colorSeedIndex: _colorSeed);
  
  // 设置主题模式
  Future<void> setThemeMode(ThemeMode mode) async {
    _themeMode = mode;
    notifyListeners();
    await _saveSettings();
  }
  
  // 设置主题色
  Future<void> setColorSeed(int index) async {
    _colorSeed = index;
    notifyListeners();
    await _saveSettings();
  }
  
  // 加载设置
  Future<void> _loadSettings() async {
    try {
      final prefs = await SharedPreferences.getInstance();
      // 如果没有保存过设置，使用默认的浅色主题
      final themeMode = prefs.getInt('themeMode') ?? 1; // 1 对应 ThemeMode.light
      final colorSeed = prefs.getInt('colorSeed') ?? 0; // 默认使用蓝色主题
      
      _themeMode = ThemeMode.values[themeMode];
      _colorSeed = colorSeed;
    } catch (e) {
      // 使用默认值
      _themeMode = ThemeMode.light; // 默认使用浅色主题
      _colorSeed = 0; // 默认使用蓝色主题
    }
    notifyListeners();
  }
  
  // 保存设置
  Future<void> _saveSettings() async {
    try {
      final prefs = await SharedPreferences.getInstance();
      await prefs.setInt('themeMode', _themeMode.index);
      await prefs.setInt('colorSeed', _colorSeed);
    } catch (e) {
      // 忽略保存错误
    }
  }
}